// 核心挂载
const {
  middleware
} = require('./mounter'); // 装载默认文件夹下的文件
const config = require('./config'); // 装载默认文件夹下的文件
const Application = require('koa'); // 引入Koa框架库
module.exports = class Server extends Application {
  constructor() {
    super();
    this.init();
  }

  init() {
    // 加载中间件
    require('./middleware')(this, middleware);
    require('./router')(this, `${config.root}/src/router`, config.afterRouters);
  }

  /**
   * @function start 服务启动方法
   * @param {Function} cb 程序启动端口
   */
  start(port, cb) {
    this.listen(port, (err) => {
      if (err) {
        throw err;
      }
      console.log(`webSite start:: http://${config.host}:${port}`);
      if (typeof cb === 'function') {
        cb(this);
      }
    });
  }
};


